#include <stdio.h>

char* replaceSpaces(char* S, int length){
	if (NULL == S || length < 0){     //如果S指向空或者为空串
		return NULL;
	}

	int count = 0;
	for (int i = 0; i < length; i++){
		if (S[i] == ' '){
			count++;          //统计字符串空格数
		}
	}
	if (!count){              //如果没有空格
		return S;
	}

	int newlen = count * 2 + length;       //计算替换后的新长度
	S[newlen--] = '\0';                    //(末尾'\0')
	int end = length - 1;                  // 字符串末尾
	//从后往前替换
	while (end + 1){
		if (S[end] == ' '){        //替换空格为"%20"
			S[newlen--] = '0';
			S[newlen--] = '2';
			S[newlen--] = '%';
			end--;
		}
		else{
			S[newlen--] = S[end--];
		}
	}
	return S;
}


int main()
{
	char s[18] = { "Mr John Smith    " };
	replaceSpaces(s, 13);
	return 0;
}